<!DOCTYPE html>
<html>

	<head lang="en">
		<meta charset="UTF-8">
		<title>注册</title>
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
		<meta name="format-detection" content="telephone=no">
		<meta name="renderer" content="webkit">
		<meta http-equiv="Cache-Control" content="no-siteapp" />

		<link rel="stylesheet" href="./AmazeUI-2.4.2/assets/css/amazeui.min.css" />
		<link href="./css/dlstyle.css" rel="stylesheet" type="text/css">
		<script src="./AmazeUI-2.4.2/assets/js/jquery.min.js"></script>
		<script src="./AmazeUI-2.4.2/assets/js/amazeui.min.js"></script>

		<!--引入Vue-->
		<script src="js/plugins/vue/dist/vue.js"></script>
		<!--引入axios-->
		<script src="js/plugins/axios/dist/axios.js"></script>
		<!--引入公共的common-->
		<script src="js/common.js"></script>


	</head>

	<body>

		<div class="login-boxtitle">
			<a href="home/demo.html"><img alt="" src="./images/logobig.png" /></a>
		</div>

		<div class="res-banner">
			<div class="res-main">
				<div class="login-banner-bg"><span></span><img src="./images/big.jpg" /></div>
				<div class="login-box">
					<dev id="phoneAndEmailForm">
						<div class="am-tabs" id="doc-my-tabs">
							<ul class="am-tabs-nav am-nav am-nav-tabs am-nav-justify">
								<li class="am-active"><a href=""  @click="empty">邮箱注册</a></li>
								<li><a href="" @click="empty">手机号注册</a></li>
							</ul>

							<div class="am-tabs-bd">
								<!--邮箱注册-->
								<div class="am-tab-panel am-active">
									<form method="post">


							   <div class="user-email">
										<label for="email"><i class="am-icon-envelope-o"></i></label>
										<input type="email" v-model="registerCodeForm.email" name="" id="email" placeholder="请输入邮箱账号">
                 </div>

										<div class="user-phone">
											<label for="imageCode"><i class="am-icon-check am-icon-sm"></i></label>
											<input type="text" name="" v-model="registerCodeForm.imageCodeValue" style="width: 180px;" placeholder="请输入图片验证码">
											<img @click="getImageCode" :src="imageCode"
												 class="captcha-image-temp" alt="点击换图" title="点击换图"
												 style="vertical-align: middle; cursor: pointer;">
										</div>
										<div class="verification">
											<label for="code"><i class="am-icon-code-fork"></i></label>
											<input type="tel" v-model="registerCodeForm.phoneCodeValue" name="" style="width: 180px" placeholder="请输入验证码">
											<butten class="btn" href="javascript:void(0);" @click="sendMobileCode"
													id="sendMobileCode">获取</butten>
										</div>


                 <div class="user-pass">
								    <label for="password"><i class="am-icon-lock"></i></label>
								    <input type="password" v-model="registerCodeForm.password"  name="" id="password" placeholder="设置密码">
                 </div>										
                 <div class="user-pass">
								    <label for="passwordRepeat"><i class="am-icon-lock"></i></label>
								    <input type="password" v-model="registerCodeForm.confirmPassword" name="" id="passwordRepeat" placeholder="确认密码">
                 </div>	
                 
                 </form>
                 
								 <div class="login-links">
										<label for="reader-me">
											<input id="reader-me" type="checkbox"> 点击表示您同意商城《服务协议》
										</label>
							  	</div>
										<div class="am-cf">
											<input type="submit" name="" value="注册" class="am-btn am-btn-primary am-btn-sm am-fl">
										</div>

								</div>

								<!--手机注册-->
								<div class="am-tab-panel" >
									<form method="post">
                 <div class="user-phone">
								    <label for="phone"><i class="am-icon-mobile-phone am-icon-md"></i></label>
								    <input type="tel" name="" id="phone" v-model="registerCodeForm.phone" placeholder="请输入手机号">
                 </div>

										<div class="user-phone">
											<label for="imageCode"><i class="am-icon-check am-icon-sm"></i></label>
											<input type="text" name="" style="width: 180px;" v-model="registerCodeForm.imageCodeValue" id="imageCode" placeholder="请输入图片验证码">
											<img id="captcha-image-temp" @click="getImageCode":src="imageCode"  class="captcha-image-temp"  alt="点击换图" title="点击换图" style="vertical-align: middle; cursor: pointer;">
										</div>
										<div class="verification">
											<label for="code"><i class="am-icon-code-fork"></i></label>
											<input type="tel" name="" style="width: 180px" id="code" v-model="registerCodeForm.phoneCodeValue" placeholder="请输入验证码">
											<button class="btn" type="button" href="javascript:void(0);" @click="sendMobileCode" id="sendMobileCode">获取</button>
										</div>
                 <div class="user-pass">
								    <label for="password"><i class="am-icon-lock"></i></label>
								    <input type="password" name="" id="password" v-model="registerCodeForm.password"  placeholder="设置密码">
                 </div>										
                 <div class="user-pass">
								    <label for="passwordRepeat"><i class="am-icon-lock"></i></label>
								    <input type="password" name="" id="passwordRepeat"  v-model="registerCodeForm.confirmPassword"  placeholder="确认密码">
                 </div>	
									</form>
								 <div class="login-links">
										<label for="reader-me">
											<input id="reader-me" type="checkbox"> 点击表示您同意商城《服务协议》
										</label>
							  	</div>
										<div class="am-cf">
											<input type="submit" @click="registerPhone" name="" value="注册" class="am-btn am-btn-primary am-btn-sm am-fl">
										</div>
								
									<hr>
								</div>

								<script>
									$(function() {
									    $('#doc-my-tabs').tabs();
									  })
								</script>

							</div>
						</div>
					</dev>
				</div>
			</div>
			
					<div class="footer ">
						<div class="footer-hd ">
							<p>
								<a href="# ">恒望科技</a>
								<b>|</b>
								<a href="# ">商城首页</a>
								<b>|</b>
								<a href="# ">支付宝</a>
								<b>|</b>
								<a href="# ">物流</a>
							</p>
						</div>
						<div class="footer-bd ">
							<p>
								<a href="# ">关于恒望</a>
								<a href="# ">合作伙伴</a>
								<a href="# ">联系我们</a>
								<a href="# ">网站地图</a>
								<em>© 2015-2025 Hengwang.com 版权所有. 更多模板 <a href="http://www.cssmoban.com/" target="_blank" title="模板之家">模板之家</a> - Collect from <a href="http://www.cssmoban.com/" title="网页模板" target="_blank">网页模板</a></em>
							</p>
						</div>
					</div>


	</body>

		<script type="text/javascript">
			new Vue({
				el:"#phoneAndEmailForm",
				data:{
					imageCode:"",
					imageCodePrefix:"data:image/jpeg;base64,",
					registerCodeForm:{
						email:"",
						phone:"", // 手机号
						imageCodeValue:"" ,// 用户填写的图形验证码的值
						imageCodeKey:"",// Redis中图形验证码的key值
						phoneCodeValue:"", // 手机验证码的值
						password:"", // 第一次密码
						confirmPassword:"", // 确认密码
						type:"register" // 注册验证码业务


					}
				},
				methods:{
					// 清空表单
					empty() {
						this.registerForm = {
							email: "",
							phone: "",
							imageCodeValue: "",
							imageCodeKey: "",
							phoneCodeValue: "",
							password: "",
							confirmPassword: "",
						}
						this.getImageCode();
					},

					registerPhone(){
						this.$http.post("/user/register", this.registerCodeForm)
								.then(result=>{
									result = result.data;
									if (result.success){
										location.href = "http://127.0.0.1/index.html";
									}else {
										alert(result.message);
									}
								})
								.catch(result=>{
									console.log(result);
									alert("系统繁忙，请稍后重试！")
								})
					},

					sendMobileCode(event){

						// 1.判断手机号不为空
						if(!this.registerCodeForm.phone && !this.registerForm.email){
							alert("账号不能为空");
							// 终止
							event.preventDefault();
							return false;
						}
						// 2.判断图片验证码不为空
						if(!this.registerCodeForm.imageCodeValue){
							alert("图片验证码不能为空");
							event.preventDefault();
							return false;

						}
						// 3.获取按钮，禁用按钮
						var sendBtn = $(event.target);
						sendBtn.attr("disabled",true);

						// 4.给图形验证码RedisKey赋值
						this.registerCodeForm.imageCodeKey = localStorage.getItem("registerImageCodeKey");

						//5.发送ajax请求
						this.$http.post("/verifyCode/smsCode", this.registerCodeForm).then(res=>{
							var ajaxResult = res.data;
							if(ajaxResult.success){
								alert("手机验证码已经发送到您的手机，请在3分钟内使用");
								//5.1.发送成功：倒计时
								var time = 60;
								var interval = window.setInterval( function () {
									//每一条倒计时减一
									time = time - 1 ;

									//把倒计时时间搞到按钮上
									sendBtn.html(time+"秒后重发");

									//5.2.倒计时完成恢复按钮
									if(time <= 0){
										sendBtn.html("重新发送");
										sendBtn.attr("disabled",false);
										//清除定时器
										window.clearInterval(interval);
									}
								},1000);
							}else{
								//5.3.发送失败：提示，恢复按钮
								sendBtn.attr("disabled",false);
								alert("发送失败:"+ajaxResult.message);
							}
						})
					},
					// 1.生成UUID的方法
					createUuid(){
						var s = [];
						var hexDigits = "0123456789abcdefghi";
						for (var i = 0; i < 36; i++) {
							s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
						}
						s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
						s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
						s[8] = s[13] = s[18] = s[23] = "-";

						var uuid = s.join("");
						return uuid;
					},
					// 2.发起Axios请求获取图形验证码的方法
					getImageCode(){
						// 2.1.从localStorage中获取UUID
						let imageCodeKey = localStorage.getItem("registerImageCodeKey");
						// 2.2.判断当前浏览器本地是否有key值，没有则生成，有则直接使用
						if(!imageCodeKey || imageCodeKey === ''){
							imageCodeKey = this.createUuid();
							localStorage.setItem("registerImageCodeKey",imageCodeKey);
						}
						// 2.3.发送Axios请求，传递UUID，得到图形验证码的Base64字符串
						this.$http.get("/verifyCode/image/"+imageCodeKey).then(result=>{
							// 2.3.1.将接口返回的图形验证码Base64字符串码+前缀赋值给模型中的imageCode字段
							this.imageCode = this.imageCodePrefix+result.data.resultObj;
						})
					}

				},
				mounted(){

					this.getImageCode();

				}
			})

		</script>

</html>